clear all; close all; clc;

% Внутренние параметры
R = 120; % Ом
C = 33e-12; % Ф
Rd = 40e3; % параметры диода
rd = 1.25;
Uo = 0.6;

f0 = 1/R/C;
%f0 = 5*1e6;

% ось времени
T = 1 / (10000*f0);
t = 0:T:(15 * 1/f0);
lt = length(t);

% Выделение памяти
Uc = nan(1, lt);
Ur = nan(1, lt);
Ud = nan(1, lt);
dUc = nan(1, lt);
i = nan(1, lt);

% Внешние параметры, внешние фазовые переменные
E = 10*ones(1, lt);

% Начальное состояние
Uc(1) = 0; % Начальное напряжение конденсатора
i(1) = 0; % В начальный момент ток в цепи отсутствует
dUc(1) = 0;
Ur(1)=R*i(1);
Ud(1)=E(1) - i(1)*R;

for k = 2:lt
% Напряжение на диоде
Ud(k) = E(k) - Ur(k-1) - Uc(k-1);
if Ud(k) < Uo
i(k) = Ud(k)/Rd;
else
i(k) = ( Ud(k)-Uo )/rd;
end

dUc(k-1) = i(k-1) / C;
Uc(k) = Uc(k-1) + dUc(k-1)*T;

Ur(k) = i(k)*R;

end

figure(1);
plot(t*1e9, [E; Uc]);
xlabel('t, ns')
ylabel('E, Uc, Volt')
legend( 'E(t)', 'Uc(t)')
grid on

